4a9fe16b1de9c009a0eac1d2c1497c8401995714,controls/src/main/java/org/tweetwallfx/controls/WordleSkin.java,WordleSkin,tweetToCloud,#,341
Before Change
tweetWordList.clear();
if (null != hbox) {
FadeTransition ft = new FadeTransition(Duration.seconds(1.5), hbox);
ft.setToValue(0);
fadeOuts.getChildren().add(ft);
ft.setOnFinished(event -> {
After Change
min = limitedWords.stream().filter(w -> w.getWeight() > 0).min(Comparator.naturalOrder()).get().getWeight();
Map<Word, Bounds> boundsMap = recalcTagLayout(limitedWords);
Duration defaultDuration = Duration.seconds(1.5);
List<Transition> fadeOutTransitions = new ArrayList<>();
List<Transition> moveTransitions = new ArrayList<>();
List<Transition> fadeInTransitions = new ArrayList<>();
Bounds layoutBounds = pane.getLayoutBounds();
boundsMap.entrySet().stream().forEach(entry -> {
Word word = entry.getKey();
Bounds bounds = entry.getValue();
Optional<TweetWordNode> optionalTweetWord = tweetWordList.stream().filter(tweetWord -> tweetWord.tweetWord.text.trim().equals(word.getText())).findFirst();
if (optionalTweetWord.isPresent()) {
boolean removed = tweetWordList.remove(optionalTweetWord.get());
Text textNode = optionalTweetWord.get().textNode;
word2TextMap.put(word, textNode);
LocationTransition lt = new LocationTransition(defaultDuration, textNode);
lt.setFromX(textNode.getLayoutX());
lt.setFromY(textNode.getLayoutY());
lt.setToX(bounds.getMinX() + layoutBounds.getWidth() / 2d);
lt.setToY(bounds.getMinY() + layoutBounds.getHeight() / 2d + bounds.getHeight() / 2d);
moveTransitions.add(lt);
FontSizeTransition ft = new FontSizeTransition(defaultDuration, textNode);
ft.setFromSize(textNode.getFont().getSize());
ft.setToSize(getFontSize(word.getWeight()));
moveTransitions.add(ft);
} else {
Text textNode = createTextNode(word);
word2TextMap.put(word, textNode);
textNode.setLayoutX(bounds.getMinX() + layoutBounds.getWidth() / 2d);
textNode.setLayoutY(bounds.getMinY() + layoutBounds.getHeight() / 2d + bounds.getHeight() / 2d);
textNode.setOpacity(0);
pane.getChildren().add(textNode);
FadeTransition ft = new FadeTransition(defaultDuration, textNode);
ft.setToValue(1);
fadeInTransitions.add(ft);
}
});
tweetWordList.forEach(tweetWord -> {
FadeTransition ft = new FadeTransition(defaultDuration, tweetWord.textNode);
ft.setToValue(0);
ft.setOnFinished((event) -> {
pane.getChildren().remove(tweetWord.textNode);
});
fadeOutTransitions.add(ft);
});
tweetWordList.clear();
if (null != hbox) {
FadeTransition ft = new FadeTransition(defaultDuration, hbox);
ft.setToValue(0);
ft.setOnFinished(event -> {
pane.getChildren().remove(hbox);
});
fadeOutTransitions.add(ft);
}
if (null != mediaBox) {
FadeTransition ft = new FadeTransition(defaultDuration, mediaBox);
ft.setToValue(0);
ft.setOnFinished(event -> {
pane.getChildren().remove(mediaBox);